一、分布式部署架构

通过分布式部署,将行云管家的业务系统按功能模块分别部署在多个计算节点上,既可避免单点故障,又能充分挖掘计算资源的使用效率,从而提供高负载下的水平扩展能力。

1.1、部署架构

行云管家分布式部署架构如下图:

(1)将行云管家部署于公有云(如阿里云、腾讯云、AWS、Azure等)环境中,利用公有云的PaaS服务等资源,保障部署环境的稳定性;

(2)部署环境中采用ELB作为用户访问接入点,并由ELB分发用户流量至多门户;

(3)部署两台门户服务,做负载均衡,由两台门户服务同时承载用户的门户访问请求;

(4)部署一台监控服务,负责监控数据的采集、分析,监控服务本身并非核心服务,可以容忍其存在短暂离线,无需考虑高可用;

(5)利用公有云的RDS(MySQL8.0.27)、MongoDB(MongoDB4.2.14)以及Redis(Redis6.0.16)提供数据库服务;

(6)利用公有云的对象存储提供存储服务;

(7)根据业务和并发会话数需求,部署一至多台中转服务,由中转服务提供主机的会话创建和分发支持;

(8)特别说明1:两台门户服务器及监控服务器要求处于同一个VPC内,以使得门户服务器和监控服务器之间可以实现内网访问,同时ELB(负载均衡器)能够将访问流量分发至两台门户服务器;

(9)特别说明2:两台门户服务器及监控服务器也可以使用私有云主机,此时,要求两台门户服务器能够访问到公有云的PaaS服务,包括RDS、MongoDB、Redis以及对象存储;

1.2、部署环境资源

分布式部署基本资源需求如下表:

资源 操作系统 配置 数量 备注
门户服务器 CentOS7.9 8核CPU、16G内存、100G系统盘 2 两台门户服务器要求处于同一VPC内
中转服务器 CentOS7.9 4核CPU、8G内存、100G系统盘 >=1 中转服务器需要能够通过ELB访问到门户服务
监控服务器 CentOS7.9 4核CPU、8G内存、100G系统盘 1 监控服务器要求与两台门户服务器处于同一VPC内
存储服务器 CentOS7.9 4核CPU、8G内存
100G系统盘+大存储数据盘
1 可使用自有S3存储
服务 引擎版本 配置 数量 备注
MySQL RDS MySQL 8.0.27
InnoDB存储引擎
100G存储 1 客户提供(使用内部数据库或购买云PaaS服务)
参数请参见下述MySQL参数表
MongoDB MongoDB 4.2.14 3节点、4核8G、100G存储 1 客户提供(使用内部数据库或购买云PaaS服务)
Redis Redis 6.0.16 单副本、8G单节点版 1 客户提供(使用内部数据库或购买云PaaS服务)
其他 配置 数量 备注
负载均衡设备 1 负载均衡器SLB或弹性负载均衡ELB

MySQL参数表如下:

参数名 行云管家设置值
sql_mode NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
init_connect 'set names utf8mb4'
character_set_server utf8mb4
character_set_filesystem utf8

1.3、部署环境网络需求

(1)门户服务器需提供对外访问能力,允许所有用户访问;

(2)门户服务主机和所有中转服务主机对所有用户开放Web(80、443)端口;

(3)如需使用本地工具,则门户服务主机和所有中转服务主机对所有用户开放8021、8022、8389、8900四个端口;

(4)如需做数据库代理访问,则门户服务主机和所有中转服务主机对所有用户开放从9000开始的数据库代理端口(每个数据库对应一个代理端口,例如:导入了3个数据库到行云管家中,则数据库代理端口分别为 9000、9001、9002);

(5)中转服务器需要对门户服务器开放22端口;

二、安装部署过程-样例

2.1、部署环境资源准备

如前述,需要准备的主机资源包括:2台门户服务器(以下“门户服务器1”简称为“portal1”、“门户服务器2”简称为“portal2”)、1台监控服务器(以下“监控服务器”简称为“monitor”)、最少1台中转服务器(以下“中转服务器”简称为“transit”);

需要准备的PaaS服务包括:RDS、MongoDB、Redis、对象存储服务;

另外,还需要准备好ELB,配置其监控两台门户服务的Web端口(80),并将Web请求分发至两台门户服务;

部署环境资源列表举例如下:

主机/服务器
名称 外网IP 内网IP 用户名 密码
门户服务器1 192.168.10.10 root Vcloud#8oUL
门户服务器2 192.168.20.10 root Vcloud#8oUL
监控服务器 132.42.56.113 192.168.10.11 root Vcloud#8oUL
中转服务器 113.86.35.190 192.168.10.12 root Vcloud#8oUL
服务
名称 访问地址 用户名 密码
RDS rm-wq8ireu9ujgho652k.mysql.rds.aliyuncs.com gjroot Omfew_weo8K
MongoDB Primary:dds-kosdfo7623lk.mongodb.rds.aliyuncs.com:3717
Secondary:dds-koiudo8362bn.mongodb.rds.aliyuncs.com:3717
root Omfew_weo8K
Redis r-iol8iitplqs96201l.redis.rds.aliyuncs.com Omfew_weo8K
OSS bucket AccessKey:MERT89IUKuycbzpQTDGjiKW0
AccessKey Secret:PWQc9neP3k7liPkw7ou52KlHG12KM
ARN:acs:ram::1924704689120320:role/uname-bucket-role-weifl
Bucket:cloud-data-bucket

2.2、安装包文件准备

分布式部署行云管家时,需要使用到行云管家安装包文件及该文件对应的MD5码文件,如:cloudguanjia_baolei_install_base_v6.5_1217.tar.gzcloudguanjia_baolei_install_base_v6.5_1217.tar.gz.md5sum

将行云管家安装包文件及其对应的MD5码文件拷贝至某一台门户服务器主机的/opt目录。

2.3、做服务器间的无密码登录

在portal1、portal2及monitor三台服务器上分别执行以下四行命令,实现可以在执行命令的服务器上无密码SSH登录至portal1服务器、portal2服务器和monitor服务器(注意:下述第二行命令中的192.168.10.10为portal1服务器的IP地址,第三行命令中的192.168.20.10为portal2服务器的IP地址,第四行命令中的192.168.10.11为monitor服务器的IP地址,执行命令前需要根据实际情况指定。在执行第二、第三行及第四行命令时,会提示是否继续连接,此时请输入“yes”并按回车键,接着会要求输入服务器的root账号的密码,请输入root账号的密码后按回车,在输入root账号的密码时屏幕上不会有任何显示)

ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.10.10
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.20.10
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.10.11

2.4、执行安装

2.4.1、一键式安装门户及监控服务

(1)以root账户SSH登录至portal1服务器

(2)在portal1服务器中,执行以下命令,进入/opt目录,并解压行云管家安装包(注意:下述第二行命令中的cloudguanjia_baolei_install_base_v6.5_1217.tar.gz为行云管家安装包文件的文件名,执行命令前需要根据实际情况指定)

cd /opt
tar zxvf cloudguanjia_baolei_install_base_v6.5_1217.tar.gz

(3)在portal1服务器中,执行以下命令,进入解压所得安装包目录

cd cloudguanjia_baolei_install

(4)在portal1服务器中,执行以下命令,安装门户及监控服务(注意:命令中参数以key=value形式予以指定,在实际执行前,需指定实际的value值)

./install.sh cluster redis_ip=r-iol8iitplqs96201l.redis.rds.aliyuncs.com redis_pwd=Omfew_weo8K redis_port=6379 mongo_replicaSetSeeds=dds-kosdfo7623lk.mongodb.rds.aliyuncs.com:3717,dds-koiudo8362bn.mongodb.rds.aliyuncs.com:3717 mongo_user=root mongo_pwd=Omfew_weo8K mysql_ip=rm-wq8ireu9ujgho652k.mysql.rds.aliyuncs.com mysql_port=3306 mysql_user=gjroot mysql_pwd=Omfew_weo8K portal_ips=192.168.10.10,192.168.20.10 monitor_pub_ip=132.42.56.113 monitor_pri_ip=192.168.10.11

上述安装命令执行时,会检查各主机的连通性,安装日志将输出到 /cloudbility_install_logs/ 目录下。

待命令执行完毕,即可完成门户服务及监控服务的安装。

2.4.2、配置负载均衡器ELB

门户服务安装完毕后,需要配置负载均衡器,将访问导向至两台门户服务器。

公有云的ELB配置各有不同,请参考各公有云的配置说明进行配置。

以Nginx做负载均衡器为例,在Nginx配置文件/etc/nginx/nginx.conf中加入以下内容:

http {
  upstream backend {
       server 192.168.10.10;
       server 192.168.20.10;
    }
    #该服务器接受到端口80的所有流量并将其传递给上游upstream 。
    #请注意,upstream名称和proxy_pass需要匹配。
    server {
       listen 80;
        location / {
           proxy_pass http://backend;
           proxy_set_header Host $http_host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection "upgrade";
       }
    }
}

再重启Nginx服务,即可实现负载均衡器配置。

三、完成安装

3.1、初始化行云管家

完成安装后,即可使用浏览器(请使用谷歌或火狐)访问 http://ip/console 来进行管理控制台初始化操作

3.2、更新License许可

初始化完成后,可以先进行License许可更新(一般部署好后默认自带15天的使用期限,也可以等快过期时再进行更新);

(1)用root用户登录门户1、门户2、监控服务器;

(2)执行以下命令导出服务器标识并发给行云管家商务人员:/opt/cloudbility/bin/getHostId

(3)从行云管家商务人员处获取到License许可后,将License许可文件解压并改成没有中文的名称(例如xxx.txt)后放到行云管家门户服务器/opt/目录下

(4)执行以下命令导入License许可(这里以文件名为xxx.txt为例):/opt/cloudbility/bin/import_license /opt/xxx.txt

3.3、安装中转

初始化完成后,需要参考行云管家中转安装指引在管理控制台网页中安装中转服务;

四、行云管家入门使用指引

(1)行云管家门户网址(用户正式使用网址)是http://ip/,管理员初始账号默认是admin

使用指引请参考:行云管家门户使用指引

刚开始用建议看这个视频指引来入门操作:https://www.bilibili.com/video/BV1Xq4y1j7pd

(2)行云管家管理控制台网址(超级管理员后台配置网址)是http://ip/console/,管理控制台管理员初始账号默认是superadmin

使用指引请参考:管理控制台使用指引

(3)行云管家门户服务器维护指引,详细介绍了行云管家对外端口及服务等;

使用指引请参考:门户服务器维护指引